Mobile computing devices including smart phones and tablet computers serve many functions in business, government, and personal computing. The essential aspects of mobile computing devices as we understand them today include a highly portable form factor enabling ease of use in many settings, usually with a touch screen interface and often combining telephone features; a combination of sensors and networking to enable many useful functions; and the ability to use dedicated “apps” (i.e., computer application software programs designed for mobile computing devices) that leverage the sensors and user interface to perform specific useful functions for the device user.
For example, an app may be provided that executes on mobile device operating systems such as Apple Inc.'s iOS®, Google Inc.'s Android®, or Microsoft Inc.'s Windows 8®. These platforms typically provide frameworks that allow apps to communicate with one another and with particular hardware and software components of mobile computing devices. For example, the mobile operating systems named above each provide frameworks enabling apps to interact with location services circuitry, wired and wireless network interfaces, user contacts, and other services. Communication with hardware and software modules executing outside of the app is typically provided via application programming interfaces (APIs) provided by the mobile computing device operating system.
Accordingly, one consequence of the proliferation of mobile computing devices is that it has become possible for apps to gather and transmit extensive data, on various networks, regarding the user of the mobile computing devices. This data can include very sensitive information, such as the user's location, photos, communications, personal identification numbers, passwords, and both financial and health information.